package com.usesion.entity;

import com.usesion.base.entity.BaseEntity;
import lombok.Data;
import org.apache.shiro.crypto.SecureRandomNumberGenerator;

import java.util.Date;

/**
 * @desc: 用户
 * @author: XT
 */
@Data
public class User extends BaseEntity{

    /**
     * 用户ID
     */
    private Integer id;

    /**
     * 用户名
     */
    private String userName;

    /**
     * 用户昵称
     */
    private String nickName;

    /**
     * 密码
     */
    private String password;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 手机号码
     */
    private String telephone;

    /**
     * 性别
     */
    private int sex;
    /**
     * 盐加密
     */
    private String salt;

    /**
     * 帐号状态:0正常,1禁用
     */
    private int status;

    /**
     * 最后登陆时间
     */
    private Date lastLoginTime;

    /**
     * 角色组
     */
    private Integer[] roleIds;

    /**
     * 生成随机盐
     */
    public void generateRandomSalt() {
        // 一个Byte占两个字节，此处生成的3字节，字符串长度为6
        SecureRandomNumberGenerator secureRandom = new SecureRandomNumberGenerator();
        String hex = secureRandom.nextBytes(3).toHex();
        setSalt(hex);
    }
}
